package com.ruoyi.deeplearn.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 模型训练配置对象 deep_model_train
 *
 * @author rww
 * @date 2024-09-09
 */
public class DeepModelTrain extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 模块ID */
    private Long id;

    /** 模型id */
    @Excel(name = "模型id")
    private Long modelId;
    private Long modelVersionId;

    /** 训练状态  0   1：训练中   2：完成 */
    @Excel(name = "训练状态  0   1：训练中   2：完成")
    private Integer trainStatus;

    /** 训练开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "训练开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date trainStartTime;

    /** 训练完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "训练完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date trainEndTime;

    /** 输入通道输 */
    @Excel(name = "输入通道输")
    private String inputChannels;

    /** 输出通道输 */
    @Excel(name = "输出通道输")
    private String outChannels;

    /** epochs */
    @Excel(name = "epochs")
    private Integer epochs;

    /** batchSize */
    @Excel(name = "batchSize")
    private Integer batchSize;

    /** shuffle */
    @Excel(name = "shuffle")
    private Integer shuffle;

    /** 验证评价体系 */
    @Excel(name = "验证评价体系")
    private String evaluate;

    /** 损失函数 */
    @Excel(name = "损失函数")
    private String loss;

    /** 学习率 */
    @Excel(name = "学习率")
    private String lr;

    /** 优化器 */
    @Excel(name = "优化器")
    private String optimizer;

    /** log打印间隔 */
    @Excel(name = "log打印间隔")
    private Integer log;

    private String inputMin;
    private String inputMax;
    private String outputMin;
    private String outputMax;
    private String inputNoData;//input_no_data
    private String outputNoData;//output_no_data
    private String outputNoDataMax;//output_no_data_max


    public String getOutputNoDataMax() {
        return outputNoDataMax;
    }

    public void setOutputNoDataMax(String outputNoDataMax) {
        this.outputNoDataMax = outputNoDataMax;
    }

    public String getInputNoData() {
        return inputNoData;
    }

    public void setInputNoData(String inputNoData) {
        this.inputNoData = inputNoData;
    }

    public String getOutputNoData() {
        return outputNoData;
    }

    public void setOutputNoData(String outputNoData) {
        this.outputNoData = outputNoData;
    }

    public Long getModelVersionId() {
        return modelVersionId;
    }

    public void setModelVersionId(Long modelVersionId) {
        this.modelVersionId = modelVersionId;
    }

    public String getInputMin() {
        return inputMin;
    }

    public void setInputMin(String inputMin) {
        this.inputMin = inputMin;
    }

    public String getInputMax() {
        return inputMax;
    }

    public void setInputMax(String inputMax) {
        this.inputMax = inputMax;
    }

    public String getOutputMin() {
        return outputMin;
    }

    public void setOutputMin(String outputMin) {
        this.outputMin = outputMin;
    }

    public String getOutputMax() {
        return outputMax;
    }

    public void setOutputMax(String outputMax) {
        this.outputMax = outputMax;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setModelId(Long modelId)
    {
        this.modelId = modelId;
    }

    public Long getModelId()
    {
        return modelId;
    }
    public void setTrainStatus(Integer trainStatus)
    {
        this.trainStatus = trainStatus;
    }

    public Integer getTrainStatus()
    {
        return trainStatus;
    }
    public void setTrainStartTime(Date trainStartTime)
    {
        this.trainStartTime = trainStartTime;
    }

    public Date getTrainStartTime()
    {
        return trainStartTime;
    }
    public void setTrainEndTime(Date trainEndTime)
    {
        this.trainEndTime = trainEndTime;
    }

    public Date getTrainEndTime()
    {
        return trainEndTime;
    }
    public void setInputChannels(String inputChannels)
    {
        this.inputChannels = inputChannels;
    }

    public String getInputChannels()
    {
        return inputChannels;
    }
    public void setOutChannels(String outChannels)
    {
        this.outChannels = outChannels;
    }

    public String getOutChannels()
    {
        return outChannels;
    }
    public void setEpochs(Integer epochs)
    {
        this.epochs = epochs;
    }

    public Integer getEpochs()
    {
        return epochs;
    }
    public void setBatchSize(Integer batchSize)
    {
        this.batchSize = batchSize;
    }

    public Integer getBatchSize()
    {
        return batchSize;
    }
    public void setShuffle(Integer shuffle)
    {
        this.shuffle = shuffle;
    }

    public Integer getShuffle()
    {
        return shuffle;
    }
    public void setEvaluate(String evaluate)
    {
        this.evaluate = evaluate;
    }

    public String getEvaluate()
    {
        return evaluate;
    }
    public void setLoss(String loss)
    {
        this.loss = loss;
    }

    public String getLoss()
    {
        return loss;
    }
    public void setLr(String lr)
    {
        this.lr = lr;
    }

    public String getLr()
    {
        return lr;
    }
    public void setOptimizer(String optimizer)
    {
        this.optimizer = optimizer;
    }

    public String getOptimizer()
    {
        return optimizer;
    }
    public void setLog(Integer log)
    {
        this.log = log;
    }

    public Integer getLog()
    {
        return log;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("modelId", getModelId())
            .append("trainStatus", getTrainStatus())
            .append("trainStartTime", getTrainStartTime())
            .append("trainEndTime", getTrainEndTime())
            .append("inputChannels", getInputChannels())
            .append("outChannels", getOutChannels())
            .append("epochs", getEpochs())
            .append("batchSize", getBatchSize())
            .append("shuffle", getShuffle())
            .append("evaluate", getEvaluate())
            .append("loss", getLoss())
            .append("lr", getLr())
            .append("optimizer", getOptimizer())
            .append("log", getLog())
            .toString();
    }
}
